package nsu.edu.zsq.service.sys;

import com.github.pagehelper.PageInfo;

import nsu.edu.zsq.bean.SysLog;
import nsu.edu.zsq.param.PageQuery;
import nsu.edu.zsq.param.SysLogSearch;

/** 
* Description: 系统的操作日志service类<br>
*/
public interface SysLogService {
    
    /**
     * 保存一条系统操作日志(管理员操作)
     * @param before 操作前的值
     * @param after 操作后的值
     * @param instruction 操作说明
     */
    public void saveSysLogBySysUser(Object before, Object after, String instruction);

    /**
     * 保存一条系统操作日志(教师操作)
     * @param before 操作前的值
     * @param after 操作后的值
     * @param instruction 操作说明
     */
    public void saveSysLogByTeacher(Object before, Object after, String instruction);
    
    /**
     * 保存一条系统操作日志(学生操作)
     * @param before 操作前的值
     * @param after 操作后的值
     * @param instruction 操作说明
     */
    public void saveSysLogByStudent(Object before, Object after, String instruction);
    
    /**
     * 获取带有分页信息的系统操作日志列表
     * @param pageQuery 分页数据
     * @return PageInfo<SysLog>
     */
    public PageInfo<SysLog> listSysLogWithPage(PageQuery pageQuery);
    
    /**
     * 通过搜索关键字，获取带有分页信息的系统操作日志列表
     * @param sysLogSearch 搜索关键字的实体类封装
     * @param pageQuery  分页数据
     * @return PageInfo<SysLog>
     */
    public PageInfo<SysLog> listSysLogWithPageBySearch(SysLogSearch sysLogSearch, PageQuery pageQuery);
}
